/**
 * 广寒宫
 * 网址:www.guanghangong.xyz
 */
package org.moon.framework.autoconfigure;

import com.google.common.collect.Lists;

import java.util.List;

/**
 * 系统常量
 * 
 * @author moon
 */
public interface MoonConstants {

	/**
	 * 静态资源路径
	 */
	List<String> STATIC_RESOUCE = Lists.newArrayList(".png",".jpeg",".ico",".jpg",".css",".html",".js",
			"/actuator/health/**","/v2/api-docs-ext/**","/swagger-ui.html","/csrf","/swagger**","/swagger-resources/**","/webjars/**");

	String BASE_PACKAGES = "org.moon.framework";
	/**
	 * 数据状态
	 * (0-启用,1-禁用)
	 * @author moon
	 */
	enum DataStatusEnum {
		/**
		 * 0-启用
		 */
		enabled,
		/**
		 * 1-禁用
		 */
		disabled
	}

	/**
	 * 租户类型
	 */
	enum TenantTypeEnum{
		/**
		 * 不开启租户模式
		 */
		none,
		/**
		 * 列级租户模式
		 */
		column,
		/**
		 * 数据源级别租户模式
		 */
		datasource
	}

	/**
	 * 支持的缓存类型
	 */
	enum CacheTypeEnum{
		local,redis
	}

	/**
	 * 当前登录用户的信息
	 */
	String CACHE_AUTH_INFO = "auth:";

	/**
	 * 登录过期时间
	 */
	long SESSION_TIME_OUT = 60*60*1000L;

	/**
	 * 刷新登录信息
	 */
	long REFRESH_SESSION = 10*60*1000L;

	/**
	 * 功能权限
	 */
	String CACHE_PERMISSION = "permission:";


	/**
	 * header token访问标识
	 */
	String HEADER_ACCESS_TOKEN = "access-token";
	/**
	 * header 请求来源标识
	 */
	String REQUEST_FROM = "rfrom";
	/**
	 * header 租户编号
	 */
	String HEADER_TENANT_CODE = "tenant-code";
	
	/**
	 * 默认租户
	 */
	String DEFAULT_TENANT_CODE = "000000";

	/**
	 * 超级管理员角色编码
	 */
	String administration = "CJGLY";

	/**
	 * 管理员角色编码
	 */
	String admin = "GLY";
	
	
	/**
	 * 请求来源类型
	 * @author moon
	 */
	public enum RequestFormEnum {
		feign,platform,yapp
	}
}